﻿using sipfe.Controllers.Base;
using sipfe.model.dataAccess;
using sipfe.service.mante;
using sipfe.util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace sipfe.Areas.Mante.Controllers
{
    public class MenuController : BaseSipfeController
    {
        string Titulo = "MANTENIMIENTO DEL MENÚ DEL SISTEMA";

        public ActionResult IndexCab()
        {
            ViewBag.TITULO = Titulo;
            return View();
        }
        //var param = { sw: sw, nameItem: nameItem, idItem: idItem };
        public ViewResult MenuDet(string sw, string nameItem, string idItem)
        {
            MenuManteService menuManteService = new MenuManteService();
            ViewBag.SelectTipoPerfil = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_PERFIL_USUARIO);
            IList<dynamic> lista = menuManteService.listaMenuDetService(sw, nameItem.ToUpper(), idItem);
            int cant = lista.Count();

            if (cant > 0)
            {
                return View(lista);
            }
            else
            {
                return View("SinRegistros");
            }
        }

        public ViewResult AgregarOpcionInp()
        {
            return View();
        }
        [HttpPost]
        public ActionResult AgregarOpcionInp(SIPMaeOpcion sipMaeOpcion)
        {
            if (ModelState.IsValid)
            {
                MenuManteService menuManteService = new MenuManteService();
                String rpta = menuManteService.AgregarOpcionService(sipMaeOpcion);

                return RedirectToAction("RptaAddOpcion", new { idTabla = rpta});
            }
            return View(sipMaeOpcion);
        }

        public ViewResult RptaAddOpcion(string idTabla)
        {
            ViewBag.ID_TABLA = idTabla;            
            return View();
        }

        public ViewResult DetalleHijos(decimal nIdeOpcion)
        {            
            MenuManteService menuManteService = new MenuManteService();
            List<SIPMaeOpcion> lista = menuManteService.DetalleHijosService(nIdeOpcion);
            if (lista.Count() <=0)
            {
                return View("SinRegistros");
            }
            return View(lista);
        }

        public HtmlString CerrarVigenciaOpcion(decimal nIdeOpcion)
        {
            MenuManteService menuManteService = new MenuManteService();
            DateTime ayer = UtilitariosUtil.FechaAyer();
            int rpta = menuManteService.CerrarVigenciaOpcionService(nIdeOpcion, ayer);
            return new HtmlString((rpta == 1) ? ayer.ToString("dd/MM/yyyy") : "");
        }

        public ViewResult AddHijoAlaOpcion(decimal nIdeOpcion)
        {
           // DependenciaManteService dependenciaManteService = new DependenciaManteService();
            //ViewBag.DepTipoRegion = formaSelectTipoDep(Constante.getInstance().N_IDE_TIPO_DEP);
            ViewBag.nIdeOpcion = nIdeOpcion;
            
            // return View(dependenciaManteService.sipMaeDependenciaByIdService(nIdeDep));
            return View();
        }

        [HttpPost]
        public ActionResult AddHijoAlaOpcion(SIPMaeOpcion sipMaeOpcion)
        {
            if (ModelState.IsValid)
            {
               // string idTD = Request["idTD"];
                MenuManteService menuManteService = new MenuManteService();
                String[] rpta = menuManteService.AddHijoAlaOpcionService(sipMaeOpcion);
                return RedirectToAction("RptaAddOpcion", new { idTabla = rpta[0], nomTabla = rpta[1] });
            }
            return View(sipMaeOpcion);
        }

        public ViewResult UpdateOpcion(decimal nIdeOpcion)
        {
            MenuManteService menuManteService = new MenuManteService();
            return View(menuManteService.ListarOpcionByIdService(nIdeOpcion));
        }

        [HttpPost]
        public ActionResult UpdateOpcion(SIPMaeOpcion sipMaeOpcion)
        {
            if (ModelState.IsValid)
            {
                MenuManteService menuManteService = new MenuManteService();
                String[] rpta = menuManteService.UpdateOpcionService(sipMaeOpcion);
                return RedirectToAction("RptaAddOpcion", new { idTabla = rpta[0], nomTabla = rpta[1] });
            }
            return View(sipMaeOpcion);
        }


        public ActionResult AddOpcionAPerfil(decimal nIdePerfil, string arrayFilas, string sw)
        {
            MenuManteService menuManteService = new MenuManteService();
            if(sw.Equals("1")){
                int nIdeUsuReg = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
                return View(menuManteService.AddOpcionAPerfilService(nIdePerfil, arrayFilas, nIdeUsuReg));
            }else{
                return View(menuManteService.ListaOpcionAPerfilService(nIdePerfil));
            }
            
            
           // menuManteService.AddOpcionAPerfilService(nIdeOpcion, cadenaOpciones);
            // int nIdeUsuReg    =  Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            // return View(menuManteService.AddOpcionAPerfilService(nIdePeril, arrayFilas, nIdeUsuReg));
        }

        public HtmlString CerrarVigenciaPerfilOpcion(decimal nIdeOpcionPerfil)
        {
            MenuManteService menuManteService = new MenuManteService();
            DateTime ayer = UtilitariosUtil.FechaAyer();
            int rpta = menuManteService.CerrarVigenciaPerfilOpcion(nIdeOpcionPerfil, ayer);
            return new HtmlString((rpta == 1) ? ayer.ToString("dd/MM/yyyy") : "");
        }


    }
}
